package dao.Azubi_Kurs;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import dao.DaoOberklasse;

import valueobjects.Azubi_Kurs.Azubi_Kurs;
import valueobjects.Azubi_Kurs.Azubi_KursImpl;
import valueobjects.Betrieb.Betrieb;

public class Azubi_KursDAOImpl extends DaoOberklasse<Azubi_Kurs> implements
		Azubi_KursDAO {

	@Override
	public List<Azubi_Kurs> holeAlleAzubi_Kurs() {
		return this.executeSQLSelect("SELECT * FROM azubi_kurs;");
	}

	public List<Azubi_Kurs> executeSQLSelect(String sql) {

		ResultSet rs = this.connectionDAO.sqlSelectAusfuehren(sql);
		List<Azubi_Kurs> azubikursliste = new ArrayList<Azubi_Kurs>();

		try {
			while (rs.next()) {
				Azubi_Kurs azubikurs = new Azubi_KursImpl();

				azubikurs.setId(rs.getInt("azubi_kurs_id"));
				azubikurs.setFk_azubi(rs.getInt("fk_azubi"));
				azubikurs.setFk_kurs(rs.getInt("fk_kurs"));
				azubikurs.setNote(rs.getDouble("note"));
				azubikursliste.add(azubikurs);

			}
		} catch (SQLException e) {
			// Bei Fehlern.
			e.printStackTrace();
		}
		return azubikursliste;
	}

	@Override
	public void speichereAzubi_Kurs(Azubi_Kurs azubiKurs) {
		String sql = "INSERT INTO azubi_kurs (fk_azubi, fk_kurs, note)"
				+ "VALUES (" + azubiKurs.getAzubi().getId() + ", "
				+ azubiKurs.getKurs().getId() + ", " + azubiKurs.getNote()
				+ ");";
		this.executeSQL(sql);
	}

	@Override
	public void loescheAzubi_Kurs(int id) {
		String sql = "DELETE FROM azubi_kurs WHERE azubi_kurs_id = " + id + ";";
		this.executeSQL(sql);
	}

	@Override
	public void aendereAzubi_Kurs(Azubi_Kurs azubiKurs) {
		String sql = "UPDATE azubi_kurs SET fk_azubi = "
				+ azubiKurs.getAzubi().getId() + ", fk_kurs = "
				+ azubiKurs.getKurs().getId() + ", note = "
				+ azubiKurs.getNote() + " WHERE azubi_kurs_id = "
				+ azubiKurs.getId() + ";";

		this.executeSQL(sql);
	}
}
